#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>
#define NUM_THREAD 100
void *thread_inc(void *arg);
void *thread_des(void *arg);
long long num = 0;
int main(int argc, char **argv)
{
    pthread_t thread_id[NUM_THREAD];
    int i;
    printf("sizeof long long: %ld \n", sizeof(long long));
    for (i = 0; i < NUM_THREAD; i++)
    {
        if (i % 2)
        {
            pthread_create(&(thread_id[i]), nullptr, thread_inc, nullptr);
        }
        else
        {
            pthread_create(&(thread_id[i]), nullptr, thread_des, nullptr);
        }
    }
    for (i = 0; i < NUM_THREAD; i++)
    {
        pthread_join(thread_id[i], nullptr);
    }
    printf("resault: %lld \n", num);
    return 0;
}

void *thread_inc(void *arg)
{
    int i;
    for (i = 0; i < 50000000; i++)
    {
        num++;
    }
    return nullptr;
}

void *thread_des(void *arg)
{
    int i;
    for (i = 0; i < 50000000; i++)
    {
        num--;
    }
    return nullptr;
}